Dynamic Storage Tiering (DST) is the concept of grouping storage devices into tiers based on their characteristics, and relocating data dynamically to leverage specific capabilities of the underlying devices. This requires that the data is classified in some way that lets the DST mechanism place a particular data element in its “optimal” tier. The concept of DST may be applied to several different Quality of Service (QoS) attributes of a storage tier; an example attribute may be performance management. For performance management, the DST objective is to identify data that has a high activity level (also called load) and place it in high performing storage tiers. The utilization of high performing storage tiers should be as high as possible as these are generally more expensive than the lower performing storage tiers and a high utilization of the more expensive storage devices provides a better return on investment for the user.
It is equally important to detect when the activity level changes from high to low and move the data back to lower performing storage tiers, so it does not take up capacity in the higher performance storage tiers that may be used by more active data. Automating the movement of data with higher activity levels to higher performing storage tiers and data with lower activity levels to lower performing storage tiers makes it much easier for the customer to get the most performance of the system without having to figure out what data has the highest activity and manually move that to higher performing storage tiers.
Certain DST systems may measure the load on an entire Logical Unit Number (LUN) and automatically move entire LUNs with a high activity level to higher performing storage tiers. However, often the majority of the activity is really restricted to a few Logical Block Address (LBA) ranges in the LUN so this approach leads to lower utilization of the higher performance storage tier as most of it is occupied by LBA ranges that do not have a high activity level. In response to this problem, some approaches split the LBA ranges within a LUN into subsets called sub-LUNs and monitor the activity in the individual sub-LUNs and only move the most active sub-LUNs to the higher performing storage tiers and let the sub-LUNs with less activity remain in the lower performing storage tiers. Such techniques may be referred to as sub-LUN tiering. Sub-LUNs may be specified as an absolute size, for example 1 MB; or as a percentage of the LUN LBA range, for example 0.1% of the LUN.
In some instances, a DST system may expose one or more Small Computer Systems Interface (SCSI) Logical Units (LU's) to its SCSI initiators (hosts), which may be identified by LUNs. Blocks of data in a LUN that have a high activity level relative to the rest of the LUN may be referred to as a hot-spot, and may be identified by a specific LBA range within the LUN. A particular LUN may have multiple hot-spots, and the performance of a storage system for a workload having a significant number of hot-spots may be significantly increased with a DST system, because the hot-spots can be relocated to a faster storage tier.
However, other types of workloads may benefit less from a DST storage system implementation, such as workloads that generate random-type inputs/outputs over an entire LBA range of an LUN. It may be difficult for a system administrator to determine if a DST system would be well suited to a particular workload. For example, an application may typically utilize middleware such as a file system or a Database Management System (DBMS) on top of a storage system, making it difficult to predict what kind of load will be on a particular storage system. Further, workloads with a particular middleware may be well suited for DST and other workloads with the same middleware may not be as well suited. Thus, DST systems may typically be applied to various different workloads utilizing a trial and error approach.